package in.data.annotation; import android.net.Uri; import android.os.Parcel; import com.google.gson.JsonElement; import in.lib.utils.Debug; import in.lib.utils.SerialReaderUtil; import in.lib.utils.SerialWriterUtil; import in.lib.utils.URLUtils; import lombok.Data; @Data public class VideoAnnotation extends ImageAnnotation { @Override public void setUrl(String url) { this.url = url; Uri uri = Uri.parse(url); if (URLUtils.isYoutubeVideo(uri)) { setPreviewUrl(URLUtils.getYoutubeThumbnail(uri)); } } @Override public VideoAnnotation createFrom(JsonElement element) { super.createFrom(element); return this; } @Override public VideoAnnotation createFrom(Parcel parcel) { super.createFrom(parcel); return this; } @Override public String getVersion() { return "7395328a-4ee4-48f5-a7e9-c1d06bb0770a"; } @Override public VideoAnnotation read(SerialReaderUtil util) { if (super.read(util) != null) { try { String version = util.readString(); if (!version.equals(getVersion())) return null; return this; } catch (Exception e) { Debug.out(e); } } return null; } @Override public void write(SerialWriterUtil util) { super.write(util); try { util.writeString(getVersion()); } catch (Exception e) { Debug.out(e); } } public static final Creator<VideoAnnotation> CREATOR = new Creator<VideoAnnotation>() { @Override public VideoAnnotation[] newArray(int size) { return new VideoAnnotation[size]; } @Override public VideoAnnotation createFromParcel(Parcel source) { return new VideoAnnotation().createFrom(source); } }; }